Software testing is becoming increasingly important. Owners, operators, and users of computer software expect and demand high standards of reliability. If a software system, such as a business software application, experiences a failure, data integrity can be affected (e.g., data can be lost or corrupted).
Typically, software testing involves the use of test cases directed at testing individual functions of a software application. For example, in order to test 10 functions related to a specific page of the software applications, 10 different test cases can be required. In order to test various combinations of the 10 functions, new test cases can be required.
Furthermore, test cases can incorporate business rules and navigation. A number of test cases can incorporate the same business rule and/or navigation. For example, a number of test cases can be developed to test a sequence of pages of a software application. Each of the test cases can test the same function, and thus the same business rule, on the first page of the sequence. After testing the function on the first page, each of the test cases can proceed to a different second page of the software application. However, because the number of test cases all include the same business rule to test the function on the first page, if the business rule needs to be modified or updated, then each of the number of test cases will need to be modified or updated.
While testing of software applications using test cases can be a relatively straightforward task where there are a small number of pages and/or functions to test, testing of complex software applications using test cases can be difficult. For example, if a business rule or function of the software application changes, a large number of test cases may need to be modified or updated. This can be a difficult, time consuming, and error-prone process. In addition, testing a large or complex software application can require many different test cases in order to test all the various business processes (e.g., business processes that span multiple pages of the software application).
Therefore, there exists ample opportunity for improvement in technologies related to testing software applications.